// 创建Ajax实例
// let xhr = new XMLHttpRequest()
// // 打开请求；发送一些请求之前的配置项
// xhr.open(method, url, async, [user-name], [user-pass])
// // 事件监听
// xhr.onreadystatechange = () => {
//     if(xhr.readyState == 4 && xhr.status === 200) {
//         console.log(xhr.responseText);
//     }
// }

// // 发送请求
// xhr.send()

console.log(123);

// method
// GET:从服务器获取数据
// POST:向服务器推送数据
// DELETE:删除服务器端的某些内容
// PUT:向服务器存放一些内容
// HEAD:只获取服务器返回的响应头信息
// OPTIONS: 发送探测性请求，如果返回来信息，说明客户端和服务端建立了请求，可以继续执行其他请求
// TRACE:axios

// get和post的区别？
// 1. xhr.open('GET', '/ssd/ss?ss=1') xhr.send('xxx=xxx')
// 2. post相对来说更安全，因为get的传参方式导致它url更容易被劫持
// 3. GET会产生不可控制的缓存，post不会
解决:xhr.open('GET', `/ssd/ss?ss=1&_=${Math.random()}`)
// 4. get在浏览器回退时无害，post会再次请求
// 5. get请求会被浏览器缓存，post不会
// 6. get请求的参数会被保存在浏览器的历史记录中，post不会
// 7. get请求只能进行url编码，post支持多种编码方式

// xhr.response // 响应的主体内容
// xhr.responseText // 响应的内容为字符串
// xhr.responseXML // 当响应的内容是XML时，这样获取
// xhr.status // 状态码的描述
// xhr.timeout // 设置请求超时的时间
// xhr.withCredentials // 是否允许跨域
// xhr.abort() // 强制中断请求
// xhr.getAllResponseHeaders() // 获取所有的响应头信息
// xhr.getResponseHeader([key]) // 用来获取响应头中的某个数据
// xhr.setRequestHeader() // 设置请求头


// xmlhttp.readyState的值及解释：

// 0：请求未初始化（还没有调用 open()）。

// 1：请求已经建立，但是还没有发送（还没有调用 send()）。

// 2：请求已发送，正在处理中（通常现在可以从响应中获取内容头）。

// 3：请求在处理中；通常响应中已有部分数据可用了，但是服务器还没有完成响应的生成。

// 4：响应已完成；您可以获取并使用服务器的响应了。


let xhr = new XMLHttpRequest()
xhr.open(method, 'xx', true) // 异步
// 事件监听
xhr.onreadystatechange = () => {
    if(xhr.readyState == 2) {
        console.log(1);
    }
    if(xhr.readyState == 4 && xhr.status === 200) {
        console.log(xhr.responseText);
    }
}

// 发送请求
xhr.send()